home *** CD-ROM | disk | FTP | other *** search
/ Amiga Format CD 42 / Amiga Format AFCD42 (Issue 126, Aug 1999).iso / -serious- / programming / other / wild / demos / misc / uselessthread / uselessthread.s < prev   
Text File  |  1999-05-25  |  1KB  |  96 lines

  1.  
  2.     include    exec/exec_lib.i
  3.     include    wildinc.gs
  4.     include    wild/wild.i
  5.  
  6. Call    MACRO
  7.     jsr    _LVO\1(a6)
  8.     ENDM
  9.     
  10. Exec    MACRO
  11.     movea.l    4.w,a6
  12.     ENDM
  13.  
  14. Wi    MACRO
  15.     movea.l    _WILDBase,a6
  16.     ENDM
  17.     
  18.     Exec
  19.     lea.l    wildname,a1
  20.     jsr    _LVOOldOpenLibrary(a6)
  21.     move.l    d0,_WILDBase
  22.     beq    exit
  23.     
  24.     bsr    Go
  25.  
  26. exit    Exec
  27.     movea.l    _WILDBase,a1
  28.     move.l    a1,d0
  29.     beq.b    .nwi
  30. .nwi    jsr    _LVOCloseLibrary(a6)
  31.     moveq.l    #0,d0
  32.     rts
  33.     
  34. wildname    dc.b    'wild.library',0
  35. _WILDBase    dc.l    0
  36. WApp        dc.l    0
  37. AppTags        dc.l    0
  38.  
  39. ThreadTags    dc.l    WITH_Entry,siso
  40.         dc.l    WITH_Args,$12345678    ; Don't need args, but put something.
  41.         dc.l    WITH_Priority,-100
  42.         dc.l    0
  43.  
  44. siso    movea.l    4.w,a6
  45.     movea.l    wt_WildPort(a5),a0
  46.     Call    GetMsg
  47.     move.w    #$0c00,$dff106
  48.     move.w    $dff006,$dff182
  49.     tst.l    d0
  50.     beq.b    siso
  51.     rts
  52.  
  53. Go    bsr    SetUpWildApp
  54.  
  55.     move.l    WApp,a0
  56.     lea.l    ThreadTags,a1
  57.     Wi
  58.     Call    AddWildThread
  59.     move.l    d0,d7
  60.     
  61.     move.l    wi_DOSBase(a6),a6
  62.     moveq.l    #20,d1
  63.     Call    Delay
  64.     
  65.     Wi    
  66.     move.l    d7,a0
  67.     Call    RemWildThread
  68.  
  69.  
  70.     bsr    KillWildApp
  71.     rts
  72.  
  73. SetUpWildApp    Exec
  74.         Call    CreateMsgPort
  75.         tst.l    d0
  76.         bne.b    .msgok
  77.         rts
  78. .msgok        Wild
  79.         movea.l    d0,a0
  80.         lea.l    AppTags,a1
  81.         Call    AddWildApp
  82.         move.l    d0,WApp
  83.         rts
  84.  
  85. KillWildApp    Wild
  86.         move.l    WApp,d0
  87.         bne.b    .okwa
  88.         rts
  89. .okwa        movea.l    d0,a0
  90.         move.l    wap_WildPort(a0),d2
  91.         Call    RemWildApp
  92.         Exec
  93.         move.l    d2,a0
  94.         Call    DeleteMsgPort
  95.         rts
  96.